package com.wanxi.test;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class ReverseArray {
    public static void main(String[] args) {
        /**
         * 1.创建数组
         * 2.反转数组
         */
        int length = getScannerInt("请输入一个数组的长度");
        int[] arr = createArray(10);
        System.out.println("当前数组为：" + Arrays.toString(arr));
//        int[] reArr = reverseArray(arr);
        int[] reArr = reverseArray2(arr);
        System.out.println("反转过后的数组为:" + Arrays.toString(reArr));
    }

    /**
     * 可以直接交换位置
     *
     * @param arr
     * @return
     */
    private static int[] reverseArray2(int[] arr) {
//        int a = 0;
//        int b = 1;
//        System.out.println(a + "  " + b);
//        int c = a;
//        a = b;
//        b = c;
//        System.out.println(a + "  " + b);
        for (int i = 0; i < arr.length / 2; i++) {
            int num = arr[i];
            arr[i] = arr[arr.length - i - 1];
            arr[arr.length - i - 1] = num;
        }
        return arr;
    }

    /**
     * 通过创建一个新数组，将第一个放入第二个的最后一个，以此类推
     *
     * @param arr
     * @return
     */
    private static int[] reverseArray(int[] arr) {
        int[] newArr = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            newArr[i] = arr[arr.length - i - 1];
        }
        return newArr;
    }

    /**
     * @return
     */
    private static int getScannerInt(String str) {
        Scanner scanner = new Scanner(System.in);
        System.out.println(str);
        return scanner.nextInt();
    }

    /**
     * 根据长度定义数组
     *
     * @param length
     * @return
     */
    private static int[] createArray(int length) {
        int[] arr = new int[length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = getRandom(10, 20);
        }
        return arr;
    }

    /**
     * 得到start到end之间的随机数[start,end]
     *
     * @param start
     * @param end
     * @return
     */
    private static int getRandom(int start, int end) {
        Random random = new Random();

        return random.nextInt(end - start) + start;
    }
}
